perm filename MEXEXT.MF[1,3]1 blob
sn#498485 filedate 1980-03-11 generic text, type C, neo UTF8
COMMENT ā VALID 00007 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 % Extrabold slashes
C00003 00003 % Left pretzels (left-right symmetric with respect to right ones)
C00007 00004 % Right pretzels (left-right symmetric with respect to left ones)
C00011 00005 % Circumscribed circles
C00013 00006 "Large G for user manuals"
C00016 00007 "Dangerous bend sign"
C00020 ENDMK
Cā;
% Extrabold slashes
charlist '017,'037;
"12 point extrabold slash";
call bigslash('017,10.4,bold+6deltaw,0,12pt).
"24 point extrabold slash";
call bigslash('037,18.8,bold+10deltaw,ph+pb,24pt-ph-pb);
call twentyfour.
% Left pretzels (left-right symmetric with respect to right ones)
"Extensible left pretzel--extension module";
call charbegin('056,17,0,0,0,50/9pt,0);
varchar '144,0,'146,'056; % the left pretzel
hpen; x13=good10 u; x3=x12=3.5u; x2=good10 6u; x1=x4=x6=8.5u;
x11=x5=good10 11u; x7=13.5u; x8=x14=good10 16u;
y1=y3=y8=y11=0;
y4=-25/9pt.pixels; y7=y6+25/9pt.pixels; y2=y13=.5[y3,y12];
y5=y6=y12=y14=round(.5-50/9pt.pixels);
x9=11u; y9=-25/18pt.pixels;
x10=6u; y10=y12+25/18 pt.pixels;
w10 draw 1{x6-x7,y6-y7}..2{0,-1}; % right of upper left strand
rpen#; u ddraw 3..4, 1..4; % erase part covered by upper middle strand
hpen; w10 draw 4{x4-x3,y4-y3}..5{0,-1}; % left of lower right strand
lpen#; u ddraw 6..7, 6..4; % erase part covered by lower middle strand
hpen; w10 draw 3..4; % left of upper middle strand
draw 6..7{x7-x6,y7-y6}..8{0,1}; % right of lower middle/upper right strand
draw 1..9; % right of upper middle strand
rpen#; u ddraw 4{x4-x10,y4-y10}..11{0,1},
9..11; % erase part covered by upper right strand
hpen; w10 draw 10..
4{x4-x10,y4-y10}..11{0,1}; % left of upper right/lower middle strand
lpen#; u ddraw 2{0,-1}..6{x9-x1,y9-y1},
2..10; % erase part covered by lower left strand
hpen; w10 draw 12{x3-x4,y3-y4}..
13{0,1}..3{x10-x12,y10-y12}; % left of lower left/upper left strand
draw 2{0,-1}..6{x9-x1,y9-y1}; % right of lower left strand
draw 7{x7-x9,y7-y9}..14{0,-1}. % right of upper middle/lower right strand
"Extensible left pretzel--top";
call charbegin('144,17,0,0,0,25/9pt,0);
hpen; x1=3.5u; y1=y5=y6=y8=round(.5-25/9pt.pixels);
x2=good10 u; y2=1/4[y3,y1];
x3=.5[x1,x2]; y3=y7=good6 0;
x4=6u; y4=y5+25/18 pt.pixels;
x5=8.5u; x6=x7=11u; x8=good10 16u;
w10 draw 1{x4-x5,y4-y5}..2{0,1}..3{1,0}..
4{x5-x4,y5-y4}..5; % end piece
draw 5{x5-x4,y4-y5}..6{0,-1}; % bottom of twist
draw 4{x5-x4,y4-y5}..7{1,0}..8{0,-1}. % top of twist
"Extensible left pretzel--bottom";
call charbegin('146,17,0,0,0,25/9pt,0);
hpen; x1=3.5u; y1=y5=y6=y8=0;
x2=good10 u; y2=1/4[y3,y1];
x3=.5[x1,x2]; y3=y7=good6(.5-25/9pt.pixels);
x4=6u; y4=y5-25/18 pt.pixels;
x5=8.5u; x6=x7=11u; x8=good10 16u;
w10 draw 1{x4-x5,y4-y5}..2{0,-1}..3{1,0}..4{x5-x4,y5-y4}; % end piece
draw 5{x5-x4,y4-y5}..6{0,1}; % top of twist
draw 1..4{x4-x1,y4-y1}..7{1,0}..8{0,1}. % bottom of twist
% Right pretzels (left-right symmetric with respect to left ones)
"Extensible right pretzel--extension module";
call charbegin('057,17,0,0,0,50/9pt,0);
varchar '145,0,'147,'057; % the right pretzel
hpen; r-x13=good10 u; r-x3=r-x12=3.5u; r-x2=good10 6u; x1=x4=x6=r-8.5u;
x11=x5=r-good10 11u; r-x7=13.5u; x8=x14=r-good10 16u;
y1=y3=y8=y11=0;
y4=-25/9pt.pixels; y7=y6+25/9pt.pixels; y2=y13=.5[y3,y12];
y5=y6=y12=y14=round(.5-50/9pt.pixels);
r-x9=11u; y9=-25/18pt.pixels;
r-x10=6u; y10=y12+25/18 pt.pixels;
w10 draw 1{x6-x7,y6-y7}..2{0,-1}; % left of upper right strand
lpen#; u ddraw 3..4, 1..4; % erase part covered by upper middle strand
hpen; w10 draw 4{x4-x3,y4-y3}..5{0,-1}; % right of lower left strand
rpen#; u ddraw 6..7, 6..4; % erase part covered by lower middle strand
hpen; w10 draw 3..4; % right of upper middle strand
draw 6..7{x7-x6,y7-y6}..8{0,1}; % left of lower middle/upper left strand
draw 1..9; % left of upper middle strand
lpen#; u ddraw 4{x4-x10,y4-y10}..11{0,1},
9..11; % erase part covered by upper left strand
hpen; w10 draw 10..
4{x4-x10,y4-y10}..11{0,1}; % right of upper left/lower middle strand
rpen#; u ddraw 2{0,-1}..6{x9-x1,y9-y1},
2..10; % erase part covered by lower right strand
hpen; w10 draw 12{x3-x4,y3-y4}..
13{0,1}..3{x10-x12,y10-y12}; % right of lower right/upper right strand
draw 2{0,-1}..6{x9-x1,y9-y1}; % left of lower right strand
draw 7{x7-x9,y7-y9}..14{0,-1}. % left of upper middle/lower left strand
"Extensible right pretzel--top";
call charbegin('145,17,0,0,0,25/9pt,0);
hpen; r-x1=3.5u; y1=y5=y6=y8=round(.5-25/9pt.pixels);
r-x2=good10 u; y2=1/4[y3,y1];
x3=.5[x1,x2]; y3=y7=good6 0;
r-x4=6u; y4=y5+25/18 pt.pixels;
r-x5=8.5u; r-x6=r-x7=11u; r-x8=good10 16u;
w10 draw 1{x4-x5,y4-y5}..2{0,1}..3{-1,0}..
4{x5-x4,y5-y4}..5; % end piece
draw 5{x5-x4,y4-y5}..6{0,-1}; % bottom of twist
draw 4{x5-x4,y4-y5}..7{-1,0}..8{0,-1}. % top of twist
"Extensible right pretzel--bottom";
call charbegin('147,17,0,0,0,25/9pt,0);
hpen; r-x1=3.5u; y1=y5=y6=y8=0;
r-x2=good10 u; y2=1/4[y3,y1];
x3=.5[x1,x2]; y3=y7=good6(.5-25/9pt.pixels);
r-x4=6u; y4=y5-25/18 pt.pixels;
r-x5=8.5u; r-x6=r-x7=11u; r-x8=good10 16u;
w10 draw 1{x4-x5,y4-y5}..2{0,-1}..3{-1,0}..4{x5-x4,y5-y4}; % end piece
draw 5{x5-x4,y4-y5}..6{0,1}; % top of twist
draw 1..4{x4-x1,y4-y1}..7{-1,0}..8{0,1}. % bottom of twist
% Circumscribed circles
subroutine bigcircle(var code, var units, var depth, var asp):
call charbegin(code,units,0,0,0,depth,0);
new aa; aa=.5sqrt(r.r+depth.depth.pixels.pixels/asp/asp);
x8=.5r; y2=-.5round depth.pixels;
x2=good10(x8+aa); y8=good10(y2+asp.aa);
call circle(1,2,3,4,5,6,7,8,w10). % bowl
new sqrtsave; sqrtsave=sqrttwo;
"Ellipse for floating-point mod operator";
new sqrttwo; sqrttwo=1.3195;
call bigcircle('140,29,5pt,.5).
"Circle to enclose two digits";
call bigcircle('141,19,7.5pt,1).
"Circle to enclose an exponent of 2";
new sqrttwo; sqrttwo=sqrtsave;
call bigcircle('142,9,6pt,1).
subroutine bigcircle:. % free up \MF's memory
"Large G for user manuals";
call charbegin('176,35,0,0,ph,0,0);
% The depth of this character has been intentionally set to zero.
new w97,w98,w99;
w97=round(1.5pw.pixels+blacker);
w98=round(3pwiv.pixels+blacker);
w99=round(3pwv.pixels+blacker);
cpen; rt97x1=rt98x9=round(12/14 r); lft99x3=round r/14;
x2=x4=7.5/14 r; top97y2=h+2o; bot97y3=1-round(12pt.pixels-2o);
y3=y4; y6=.6[y2,y4]; y1=good6 9/25[y2,y3];
x6=x1; y9=good97 3/5[y2,y3];
x7=x1; top97y7=h; lft97x8=lft98x1; y8=y1;
hpen; w97 ddraw 1..7, 8..7; % upper serif
lpen#; w97 ddraw (6..)1..2{-1,0},
(6..)8..2{-1,0}; % erase spurious part
cpen; w97 draw (6..)1..2{-1,0}; % upper right stroke
x15=x3; y15=.5[y2,y3];
call hcirc(2,14,15,16,17,w97); % reinforce main stroke
call `a darc(2,3,w99); % main stroke
crsbreak .5[y2,y3];
y11=y10=y13=1/3[y3,y9];
lft97x11=lft98x9; rt97x12=rt97x13=rt98x9; y12=y3+2o;
w97 draw 4{1,0}..11..9{0,1}; % lower right stroke
x20=x11; y20=y9; x21=x12; y21=y9;
ddraw 20..11,21..13; % stem
ddraw 13..12, 11{0,-1}..12{2(x12-x11),y12-y11}; % spur
y22=y25=y20; y24=y27=y20-2s;
y23=y26=1/3[y20,1/2[y22,y24]];
x22=x20-2.25/14 r; x24=x20; x23=1/3[x20,1/2[x22,x24]];
x25=x21+1.25r/14; x27=x21; x26=1/3[x21,1/2[x27,x25]];
minvr 0; minvs 0;
ddraw 22{1,0}..23..24{0,-1}, 25{-1,0}..26..27{0,-1}; % lower serif
minvr 0.5; minvs 0.5.
"Dangerous bend sign";
call charbegin('177,25,0,0,ph+pb,0,0);
% The depth of this character has been intentionally set to zero.
% The actual depth is 11\\{pt}, as desired in the user manuals.
minvr 0; minvs 0;
cpen; x1=good10(.5r-u)=r-x2; % left-right symmetry;
top10y1=h+b;y2=y1;
x3=x1; x4=x2; x5=r-x5; x6=r-x7; x8=r-x9; x0=r-x20;
x6=x5-2u; x8=u; lft10x0=0;
y5=good10(25/27(h+b)); y6=y7=23/27(h+b); y8=y9=4/27(h+b); y0=y20=0;
y11+y9=y12+y8=y13+y7=y14+y6=
y15+y5=y16+y4=y17+y3=0; % top-bottom symmetry
x11-x9=x12-x8=x13-x7=x14-x6=x15-x5=
x16-x4=x17-x3=x18-x2=x19-x1=0;
y18=y19=y21=y22; bot10y21=1-round(11pt.pixels);
x21=r-x22=good10(.5r-8u);
y3=y4=.5[y5,y6];
w10 draw 1..2; % top of signpost
draw 21..22; % ground level
draw 1..3; draw 19..17; % left edge of signpost
draw 2..4; draw 18..16; % right edge of signpost
rpen#; draw |1|5{-1,0}..|2u|6{x8-x6,y8-y6};
draw |1|15{-1,0}..|2u|14{x12-x14,y12-y14}; % erase hidden left edge
lpen#; draw |1|5{1,0}..|2u|7{x9-x7,y9-y7};
draw |1|15{1,0}..|2u|13{x11-x13,y11-y13}; % erase hidden right edge
cpen; w10 draw 5{-1,0}..6{x8-x6,y8-y6}..
8{x8-x6,y8-y6}..0{0,-1}; % upper left edge of sign
draw 5{1,0}..7{x9-x7,y9-y7}..
9{x9-x7,y9-y7}..20{0,-1}; % upper right edge of sign
draw 15{-1,0}..14{x12-x14,y12-y14}..
12{x12-x14,y12-y14}..0{0,1}; % lower left edge of sign
draw 15{1,0}..13{x11-x13,y11-y13}..
11{x11-x13,y11-y13}..20{0,1}; % lower right edge of sign
new w99; w99=round (bold+4deltaw);
x31=r-x38=x5-4u; x32=x34=x38;
x35=x37=x31; x33=r-x36=good99(x5+5u);
y31=12/27(h+b); y32=9/27(h+b); y33=6/27(h+b); y34=3/27(h+b);
y31+y38=y32+y37=y33+y36=y34+y35=0;
vpen; w99 draw 31..32; % upper bar
draw 38..37; % lower bar
cpen; w99 draw 32{x32-x31,y32-y31}..33{0,-1}..
34{x35-x34,y35-y34}..35{x35-x34,y35-y34}..36{0,-1}..
37{x38-x37,y38-y37}; % the dangerous bend
crsbreak 0;
minvr .5; minvs .5.